package com.wkbb.basic.mapper;

import com.wkbb.common.dto.basic.ClassInfo;
import com.wkbb.basic.vo.ClassManageEditVo;
import com.wkbb.common.base.BaseMapper;
import com.wkbb.common.dto.basic.ClassInfoDto;
import com.wkbb.common.dto.course.CourseClassDto;
import com.wkbb.common.dto.basic.ImRepairClassMasterDto;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface ClassInfoMapper extends BaseMapper<ClassInfo> {

    List<ClassInfo> getClassListByTeacherCourse(Map<String, Object> params);

    List<ClassInfo> getClassListByFamily(Map<String, Object> params);

    ClassInfoDto getClassInfoDtoById(Map<String, Object> params);

    ClassInfoDto getClassInfoByMasterId(HashMap<String, Object> params);

    ClassManageEditVo getClassInfoWithCoursesById(@Param(value = "classId") Long classId);

    List<ClassInfo> getClassMasterListByOrgId(Long orgId);

    void updateBack(ClassInfo classInfo);

    void updateMaster(ClassInfo classInfo);

    ClassInfo getNewClassByOld(Long oldClassId);

    List<ClassInfoDto> getNewClassListByOldIds(@Param(value = "oldClassIds") List<Long> oldClassIds);

    List<ClassInfo> getClassListAndMsIsNotNull();

    void deleteByOrgId(Long orgId);

    List<Long> getClassIdList(HashMap<String, Object> params);

    List<ClassInfo> getClassInfoById(HashMap<String, Object> params);

	List<ImRepairClassMasterDto> getMasterAndTeacherCourseNum();

    List<ClassInfoDto> getCpClassListByOrg(Map<String, Object> params);
    
    
    void upTeacher(Map<String, Object> params);

    List<CourseClassDto> getCourseClassByStudentId(Long id);

    Map<String, Object> getClassAndGradeCount(Map<String, Object> params);
}